import org.junit.Test;

import java.util.Arrays;

/**
 * 数组 Array
 * 相当于一堆相同的数据；
 */
public class 数组 {
    //创建数组：4种；动态初始化【无给定值】和静态初始化【给定值】
    @Test
    public void testArray(){
        //注意：数组长度固定
        int[] arr1=new int[4]; //java推荐版本
        int arr3[]=new int[4]; //c版本写法
        int[] arr4={1,2,3,4}; //静态初始化数组
        int[] arr5=new int[]{1,2,3}; //动态初始化
        //数组内部数据叫元素；
        //arr4取出2的元素
        //arr4[1]=4;
//        System.out.println(arr4[2]);
//        //arr长度
//        System.out.println(arr5.length);
        //arr5获取到第四个元素值
//        System.out.println(arr5[2]);
/**
 * 数组的迭代
 * 1.for循环普通迭代
 * 2.增强for循环
 * 3.工具类:Arrays
  */

       // public void testIterate(){
     //   int[] arr={1,2,3,4};
      //  for (int i=0;i<=arr.length;i++){
       //     System.out.println(arr[i]);
       // }
       // }
       //增强for
//        for(int j;arr4){
            //增强for语法：（遍历数据类型 引用：数组名）
//            System.out.println(j);
//        }
        //工具类:Arrays.toString(); 直接打印数组元素值
        System.out.println(Arrays.toString(arr1));

    }
    /**
     * 数组的扩容,使用扩容改变‘
     *
     */
    @Test
    public void testCopy(){
        //创建字符数组
        char[] arr={'唐','山'};  //想法：增加4个空间
        char[] temp=Arrays.copyOf(arr,4);
        arr=temp;
        System.out.println(arr.length);
        //需求
       arr[2]='工';
       arr[3]='也';
        System.out.println(arr);
    }
    /**
     * 数组输出元素有不同
     * 基础数据类型和引用类型
     */
    @Test
    public void testArrays(){
        //字符数组
        char[] china={'中','国'}; //字符串就是字符数组,
        //输出语句，javaOOP面向对象，如果是字符数组会重载拼接；
        //数值数组
        int[] i={1,2};
        System.out.println(china);
        System.out.println(i);
    }

    /**
     * 冒泡排序：双层for循环的使用，外层for执行1次，内层for一直执行
     */
    @Test
    public void bubbleSort(){
        //初始化数组
        int[] arr={3,6,4,1};
        for (int i=0;i<arr.length-1;i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                //交换,创建第三个接收数 接收元素，数组名加小标
                //第一个比第二个大
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }

            }

        }
        System.out.print(Arrays.toString(arr));

    }
    @Test
    public void testSort(){
        int arr[]={3,6,5,1};
        //工具类 Arrays.sort() 方法用来做排序的【默认升序】
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}
